home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1996 March / EnigmA AMIGA RUN 05 (1996)(G.R. Edizioni)(IT)[!][issue 1996-03][Skylink CD IV].iso / earcd / comm1 / exclutls.lha / Comments / CleanupComments.s < prev    next >
Text File  |  1996-01-28  |  5KB  |  254 lines

  1. ;Released as public domain 28-Jan-1996 by the author Dave Dustin
  2.     Section    Cleanup,Code
  3.     Opt    C+;,D+
  4.  
  5.     Include    mysystem.gs
  6.     Include    excel/itemdata.i
  7. ;--------------------------------------------------------------------------
  8. Start:    Move.L    $4.w,A6
  9.     Move.L    A6,_EXECBase
  10.  
  11.     Lea    DOSLib(PC),A1
  12.     Moveq    #36,D0
  13.     CALL    OpenLibrary
  14.     Move.L    D0,_DOSBase
  15.     Beq    .NoDOS
  16.  
  17.     Move.L    #ArgumentTemp,D1
  18.     Move.L    #_Cleanup,D2
  19.     Moveq    #0,D3
  20.     CALLPCDOS    ReadArgs
  21.     Beq    .NoArguments
  22.     Move.L    D0,_Argument
  23.  
  24.     Move.L    #Title,D1
  25.     CALLPCDOS    PutStr
  26.  
  27.     Tst.L    _MBase
  28.     Beq.S    .UseFBase
  29.     Move.B    #'M',FBaseName
  30.     Move.L    #770,_FPathOffset
  31.  
  32. .UseFBase    Tst.L    _Correct
  33.     Bne.S    .Main
  34.     Tst.L    _Cleanup
  35.     Bne.S    .Main
  36.     
  37.     Move.L    #Info,D1
  38.     CALLPCDOS    PutStr
  39.     Bra    .NoSystemData
  40. ;------main
  41. .Main    Move.L    #ItemDataName,D1
  42.     Moveq    #ACCESS_READ,D2
  43.     CALLPCDOS    Lock
  44.     Tst.L    D0
  45.     Beq.S    .NoLocal
  46.  
  47.     Move.L    D0,D1
  48.     CALL    UnLock
  49.  
  50.     Move.L    #Local,D1
  51.     CALL    PutStr
  52.  
  53.     Tst.L    _Correct
  54.     Beq.S    .LClean
  55.     Move.L    #CorrectionTxt,D1
  56.     CALL    PutStr
  57.     Bsr    Correct
  58.     Bra.S    .LocalDone
  59. .LClean    Move.L    #CleanupTxt,D1
  60.     CALL    PutStr
  61.     Bsr    Cleanup
  62. .LocalDone    Move.L    #Complete,D1
  63.     CALLPCDOS    PutStr
  64.     Bra    .NoSystemData
  65.  
  66. .NoLocal    Lea    SysDataName(PC),A0
  67.     Lea    _DataStart(PC),A1
  68.     Lea    _DataSize(PC),A2
  69.     Bsr    LoadFile
  70.     Bne    .NoSystemData
  71.  
  72.     Move.L    _DataStart(PC),A0    ;data
  73.     Lea    386(A0),A0
  74.     Lea    FBase(PC),A1
  75.     Bsr    CopyData
  76.     Lea    FBaseName(PC),A0
  77.     Bsr    CopyData
  78.     Move.B    #0,(A1)
  79.  
  80.     Move.L    _DataStart(PC),A0    ;files
  81.     Add.L    _FPathOffset,A0
  82.     Lea    FileArea(PC),A1
  83.     Bsr    CopyData
  84.     Move.L    A1,_AreaMarker
  85.  
  86.     Lea    FBase(PC),A0
  87.     Lea    _FBaseStart(PC),A1
  88.     Lea    _FBaseSize(PC),A2
  89.     Bsr    LoadFile
  90.     Bne    .NoFBase
  91.  
  92.     Move.L    #CommentTxt,D1
  93.     CALLPCDOS    PutStr
  94.  
  95.     Move.L    #CleanupTxt,D1
  96.     Tst.L    _Correct
  97.     Beq.S    .TypeClean
  98.     Move.L    #CorrectionTxt,D1
  99.  
  100. .TypeClean    CALL    PutStr
  101.  
  102.     Move.L    #InProgress,D1
  103.     CALL    PutStr
  104.  
  105.     Move.L    _FBaseStart(PC),A5
  106.     Move.L    _FBaseSize(PC),D7
  107.     Divu.W    #332,D7
  108.     Subq    #1,D7
  109.  
  110. .Processloop    Move.B    177(A5),D1    ;get identity flag (I hope :)
  111.  
  112.     Cmp.B    #$20,D1    ;check to see if it's a normal area
  113.     Beq.S    .Area
  114.  
  115.     Cmp.B    #$04,D1    ;check to see if it's a usenet area
  116.     Beq.S    .Usenet
  117.  
  118.     Cmp.B    #$10,D1    ;check to see if it's a directory
  119.     Beq.S    .SubDir
  120.  
  121.     Move.L    #Tab,D1
  122.     CALLPCDOS    PutStr
  123.     Move.L    A5,D1
  124.     CALL    PutStr
  125.     Move.L    #Unknown,D1
  126.     CALL    PutStr
  127.     Bra    .SkipIt
  128. .Usenet
  129.     Move.L    #Tab,D1
  130.     CALLPCDOS    PutStr
  131.     Move.L    A5,D1
  132.     CALL    PutStr
  133.     Move.L    #Usenet,D1
  134.     CALL    PutStr
  135.     Bra.S    .SkipIt
  136.  
  137. .SubDir    Move.L    #Bold,D1
  138.     CALLPCDOS    PutStr
  139.     Move.L    A5,D1
  140.     CALL    PutStr
  141.     Move.L    #BoldOff,D1
  142.     CALL    PutStr
  143.     Bra.S    .SkipIt
  144.  
  145. .Area    Lea    31(A5),A0
  146.     Move.L    _AreaMarker(PC),A1
  147.     Bsr    CopyData
  148.     Move.B    #'/',(A1)+
  149.     Move.L    A1,_FileMarker
  150.  
  151.     Move.L    #Tab,D1
  152.     CALLPCDOS    PutStr
  153.     Move.L    A5,D1
  154.     CALL    PutStr
  155.  
  156.     Tst.L    _Correct
  157.     Beq.S    .Clean
  158.     Bsr    Correct
  159.     Bra.S    .Done
  160. .Clean    Bsr.S    Cleanup
  161.  
  162. .Done    Move.L    #Cr,D1
  163.     CALLPCDOS    PutStr
  164.  
  165. .SkipIt    Move.L    #SIGBREAKF_CTRL_C,D1
  166.     Moveq    #0,D0
  167.     CALLPCEXEC    SetSignal
  168.     Btst.L    #SIGBREAKB_CTRL_C,D0
  169.     Beq.S    .NoBreak
  170.  
  171.     Move.L    #Break,D1
  172.     CALLPCDOS    PutStr
  173.     Bra.S    .Closedown
  174.  
  175. .NoBreak    Lea    332(A5),A5
  176.     DBra    D7,.Processloop
  177.  
  178. ;------closedown
  179. .Closedown    Move.L    _FBaseStart(PC),A1
  180.     Move.L    _FBaseSize(PC),D0
  181.     CALLPCEXEC    FreeMem
  182.  
  183. .NoFBase    Move.L    _DataStart(PC),A1
  184.     Move.L    _DataSize(PC),D0
  185.     CALLPCEXEC    FreeMem
  186.  
  187. .NoSystemData    Move.L    _Argument(PC),D1
  188.     CALLPCDOS    FreeArgs
  189.  
  190. .NoArguments    Move.L    _DOSBase(PC),A1
  191.     CALLPCEXEC    CloseLibrary
  192.  
  193. .NoDOS    Moveq    #0,D0
  194.     Rts
  195.  
  196. ;--------------------------------------------------------------------------
  197.     Include    Cleanup.s
  198.     Include    Correct.s
  199.     Include    LoadFile.s
  200.     Include    CopyData.s
  201. ;--------------------------------------------------------------------------
  202. Version:    Dc.B    0,'$VER: CleanupComments 1.1 (13.2.94)',0
  203. DOSLib:    DOSNAME
  204. ArgumentTemp:    Dc.B    'CLEANUP/S,CORRECT/S,MBASE/S',0
  205. SysDataName:    Dc.B    'SystemData',0
  206. FBaseName:    Dc.B    'FBase.dat',0
  207. ItemDataName:    Dc.B    '_itemdata',0
  208. CommentsName:    Dc.B    '_comments',0
  209. Title:    Dc.B    10,'EXCELSIOR! BBS File Comments Cleanup v1.1',10,'© Copyright 1994 Eclipse Software, All Rights Reserved.',10,10,0
  210. Info:    Dc.B    'You MUST read the manual before attempting to use this program!',10,0
  211. Tab:    Dc.B    '   ',0
  212. Bold:    Dc.B    10,$9B,'1m',0
  213. BoldOff:    Dc.B    $9B,'0m'
  214. Cr:    Dc.B    10,0
  215. Usenet:    Dc.B    '   [UNET area]',10,0
  216. Unknown:    Dc.B    '   [Unknown entry type]',10,0
  217. CommentTxt:    Dc.B    'Comment ',0
  218. Local:    Dc.B    'Local ',0
  219. CorrectionTxt:    Dc.B    'Correction ',0
  220. CleanupTxt:    Dc.B    'Cleanup ',0
  221. InProgress:    Dc.B    'in progress',10,10,0
  222. Complete:    Dc.B    'complete',10,0
  223. Break:    Dc.B    '***Break',10,0
  224.     Even
  225.  
  226. _DOSBase:    Dc.L    0
  227. _EXECBase:    Dc.L    0
  228.  
  229. _Argument:    Dc.L    0
  230. _Cleanup:    Dc.L    0
  231. _Correct:    Dc.L    0
  232. _MBase:    Dc.L    0,0
  233.  
  234. _DataStart:    Dc.L    0
  235. _DataSize:    Dc.L    0
  236.  
  237. _FBaseStart:    Dc.L    0
  238. _FBaseSize:    Dc.L    0
  239. _FPathOffset:    Dc.L    898
  240.  
  241. _ItemStart:    Dc.L    0
  242. _ItemSize:    Dc.L    0
  243. _ItemHandle:    Dc.L    0
  244.  
  245. _CommentStart:    Dc.L    0
  246. _CommentSize:    Dc.L    0
  247. _CommentHandle:    Dc.L    0
  248.  
  249. _AreaMarker:    Dc.L    0
  250. _FileMarker:    Dc.L    FileArea
  251.  
  252. FBase:    Ds.B    140
  253. FileArea:    Ds.B    170
  254.